﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
namespace Projet_Final_ASP
{
    /// <summary>
    /// Classe qui servira a créer et manipuler les paniers des clients
    /// </summary>
    public class Cart
    {
        //Déclaration des variables membres
        private int _noCart;
        private int _noArticle;
        private static Dictionary<oProduit, int> dictCart = new Dictionary<oProduit, int>();

        //Constructeurs
        //Par défaut
        public Cart()
        {
            setNoCart(0);
            setNoArticle(0);
        }

        //Par paramètres
        public Cart(int noCart, int noArticle)
        {
            setNoCart(noCart);
            setNoArticle(noArticle);
        }

        //Méthodes d'accès
        public void setNoCart(int NoCart)
        {
            _noCart = NoCart;
        }
        public int getNoCart()
        {
            return _noCart;
        }

        public void setNoArticle(int NoArticle)
        {
            _noArticle = NoArticle;
        }
        public int getNoArticle()
        {
            return _noArticle;
        }

        //Permet d'ajouter un article dans la liste a l'aide de son numero et la quantité voulue
        public void AddtoCart(oProduit produit, int quantite, int noProduit)
        {
            int oldQuantity;
            Dictionary<oProduit, int> tempCart = dictCart;
            bool existe = false;
            if (dictCart.Count > 0)
            {
                foreach (oProduit key in tempCart.Keys)
                {
                    existe = false;
                    if (key.NoProduit == noProduit)
                    {
                        oldQuantity = dictCart[key];
                        dictCart.Remove(key);
                        dictCart.Add(produit, oldQuantity + quantite);
                        existe = true;
                        break;
                    }
                    else
                        continue;
                }
                if(existe == false)
                    dictCart.Add(produit, quantite);
            }
            else
                dictCart.Add(produit, quantite);
        }

        //Affiche le contenu du cart
        public string ShowCart()
        {
            string cartValue = string.Empty;
            
            foreach (KeyValuePair<oProduit, int> pair in dictCart)
            {
                cartValue += String.Format("{0}, {1};",
                    pair.Key.NomProduit,
                    pair.Value);
            }
            return cartValue;
        }

        public Dictionary<oProduit, int> ContenuCart()
        {
            return dictCart;
        }
    
        //Supprime un article du panier à l'aide de son numéro d'article
        public void RemoveArticle(oProduit produit)
        {
            dictCart.Remove(produit);
        }


              
    }
}